package com.sword.invoice.bean.bo.sales;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

/**
 * @Author zhangshiheng
 * @Date 2022-10-25 9:30
 * @Version 1.0
 **/

@Setter
@Getter
public class InvoiceOrder implements Serializable {
    //购方名称
    private String buyerName;
    //购方税号
    private String buyerTaxNum;
    //购方电话
    private String buyerTel;
    //购方地址
    private String buyerAddress;
    //购方银行开户行及账号
    private String buyerAccount;
    //销方税号
    private String salerTaxNum;
    //销方电话
    private String salerTel;
    //销方地址
    private String salerAddress;
    //销方银行开户行及账号
    private String salerAccount;
    //不传默认为0：都不显示；传1：备注仅显示销方开户行及账号；传2：备注仅显示购方开户行及账号；传3：购销方开户行及账号都显示
    private String showBankAccountType;
    //不传默认为0：都不显示；传1：备注仅显示销方地址及电话；传2：备注仅显示购方地址及电话；传3：购销方地址及电话都显示（此字段仅在数电普票和数电专票下生效）
    private String showAddressTelType;
    //订单号
    private String orderNo;
    //订单时间
    private String invoiceDate;
    //冲红时填写的对应蓝票发票代码
    private String invoiceCode;
    //冲红时填写的对应蓝票发票号码
    private String invoiceNum;
    //冲红原因：1:销货退回;2:开票有误;3:服务中止;
    // 4:发生销售折让(开具红票时且票种为p,c,e,f,r需要传--成品油发票除外；不传时默认为 1)
    private String redReason;
    //红字信息表编号.
    private String billInfoNo;
    //
    private String departmentId;
    private String clerkId;
    //备注
    private String remark;
    //数电电票是否展示收款人和复核人，0：不显示 1：显示
    private String showCheckerType;
    //复核人
    private String checker;
    //收款人
    private String payee;
    //开票员
    private String clerk;
    // 自然人标志
    private String naturalPersonFlag;
    // 对购方税号校验
    private String taxNumVerifyFlag;


    //清单标志：非清单:0；清单:1，默认:0，电票固定为0
    private String listFlag;
    private String listName;
    private String pushMode;
    private String buyerPhone;
    private String email;
    private String invoiceType;
    private String invoiceLine;
    /**
     * 诺诺
     * 特定要素：
     * 0普通发票（默认）
     * 1 成品油
     * 2 稀土（仅支持s、bs票种且编码必须为稀土产品目录中的商品）
     * 3 建筑服务
     * 4 货物运输服务
     * 5 不动产销售
     * 6 不动产经营租赁服务
     * 9 旅客运输服务
     * 12 自产农产品销售
     * 16 农产品收购
     * 31 建安发票
     * 32 房地产销售发票
     * 33 二手车发票反向开具
     * 34 电子烟、
     * 35 矿产品
     */
    private String specificFactor;
    /**
     * 代开标志：0非代开;1代开。代开蓝票时备注要求填写文案：代开企业税号:***,代开企业名称:***；代开红票时备注要求填写文案：对应正数发票代码:***号码:***代开企业税号:***代开企业名称:***
     */
    private String proxyInvoiceFlag;
    private String callBackUrl;
    private String extensionNumber;
    private String terminalNumber;
    private String machineCode;
    private String vehicleFlag;
    private String hiddenBmbbbh;
    private String nextInvoiceCode;
    private String nextInvoiceNum;

    private String invoiceNumEnd;
    private String surveyAnswerType;

    /**
     * 购买方经办人姓名
     */
    private String buyerManagerName;

    /**
     * 经办人证件类型
     */
    private String managerCardType;

    /**
     * 经办人证件号码
     */
    private String managerCardNo;

    /**
     * 发票明细
     */
    private List<InvoiceLine> invoiceDetail;
/*
    *//**
     * 开具二手车销售统一发票才需要传
     *//*
    private SecondHandCarInfo secondHandCarInfo;
    *//**
     * 机动车销售统一发票才需要传
     *//*
    private VehicleInfo vehicleInfo;

    *//**
     * 数电建筑服务发票 只能有一条明细且规格型号、单位、数量、单价 都不能有值
     *//*
    private InvoiceBuildingInfo invoiceBuildingInfo;

    *//**
     * 开具货物运输服务特定要素的数电票时才需要填（specificFactor = 4时）最多2000行，至少1行
     *//*
    private List<InvoiceGoodsTransport> invoiceGoodsTransports;

    *//**
     * 开具旅客运输服务特定要素的数电票时才需要填（specificFactor 为 9时）最多2000行，可以为空
     *//*
    private List<InvoiceTravellerTransport> invoiceTravellerTransportInfoList;

    *//**
     * 开具不动产经营租赁服务特定要素的数电票才需要传（specificFactor 为 6时）；注：此时 商品只能有 一条明细 且 规格型号、单位都不能有值
     *//*
    private RealPropertyRentInfo realPropertyRentInfo;

    *//**
     * 开具不动产经营租赁服务特定要素的数电票才需要传（specificFactor 为 6时）；注：多行
     *//*
    private List<RealPropertyRentInfo> realPropertyRentInfoList;

    *//**
     * 开具不动产销售特定要素的数电票才需要传（specificFactor 为 5时）；注：此时 商品只能有 一条明细 且 规格型号、单位都不能有值
     *//*
    private List<RealPropertySellInfo> realPropertySellInfo;

    *//**
     * 多方购方标志
     *//*
    private String coBuyerFlag;

    *//**
     * 多方购买信息列表
     *//*
    private List<CoBuyerInfo> coBuyerInfoList;


    *//**
     * 数电发票差额征税开具方式：01 全额开票，02 差额开票；非数电发票开具差额时，不传
     *//*
    private String invoiceDifferenceType;

    *//**
     * 数电发票差额扣除凭证列表，开具数电差额征税-差额开票时，必传
     *//*
    private List<InvoiceDifferenceVoucherInfo> differenceVoucherInfoList;

    *//**
     * 附加模版名称（数电电票特有字段，附加模版有值时需要添加附加要素信息列表对象，需要先在电子税局平台维护好模版）
     *//*
    private String additionalElementName;
    *//**
     * 附加要素信息列表（数电电票特有字段，附加要素信息可以有多个，有值时需要附加模版名称也有值）
     *//*
    private List<InvoiceAdditionalElement> additionalElementList;

    *//**
     * 支付信息 列表
     *//*
    private List<InvoicePaymentInfo> paymentInfoList;*/
}
